package com.linkwedo.saas.domain.share;

import java.util.HashSet;
import java.util.Set;

import com.linkwedo.saas.domain.Project;
import com.linkwedo.saas.domain.Task;
import com.linkwedo.saas.domain.member.Team;


public abstract class Share implements Shareable{
	
	@Override
	public final ShareType[] getAvailableShareTypes() {
		return ShareManager.getShareType(this);
	}
	
	private ShareType shareType;
	private Project project;
	private Team team;
	private Task task;
	private Set<SharedIndividual> sharedIndividual = new HashSet<SharedIndividual>();
	
	
	public ShareType getShareType() {
		return shareType;
	}
	public void setShareType(ShareType shareType) {
		this.shareType = shareType;
	}
	
	
	public Project getProject() {
		return project;
	}
	public void setProject(Project project) {
		this.project = project;
	}
	public Task getTask() {
		return task;
	}
	public void setTask(Task task) {
		this.task = task;
	}
	public Set<SharedIndividual> getSharedIndividual() {
		return sharedIndividual;
	}
	public void setSharedIndividual(Set<SharedIndividual> sharedIndividual) {
		this.sharedIndividual = sharedIndividual;
	}
	public Team getTeam() {
		return team;
	}
	public void setTeam(Team team) {
		this.team = team;
	}
	
}
